草庐IT

c++ - error_code 与 errno

全部标签

c - Windows 共享内存段

我一直在用谷歌搜索这个问题,但未能找到明确的答案,所以我希望有人对WindowsVSLinux中的共享内存段有一些了解。在Linux中,有两种为IPC创建共享内存的方法:共享内存段(shmget等)和内存映射文件(mmap)。根据我的简要理解,mmap要求您在操作系统中的某处有一个实际文件来映射,而共享内存段只是内存中基于名称的段,可以由进程附加到该段上。在Windows中,似乎只有内存映射文件的等价物,您必须在某处float一个实际文件。我的问题:这实际上是Windows中唯一一种共享内存,还是它有一个用于创建非基于文件的共享内存段的API。 最佳答案

c - 调试断言失败。表达式(流!= NULL)

我收到以下错误:DebugAssertionFailed.Expression(stream!=NULL)File:f:\dd\vctools/crty_bld/self_x86\crt\src\fwrite.c创建4个线程时CPU使用率100%。该代码最初在一段时间内运行良好,然后出现此错误。该代码是使用WSAWaitforMultipleEvents()的UDP单服务器/多客户端应用程序。编辑:调试器在fwrite.c中触发断点if(size==0||count==0)return0;//justcheckingforstream!=NULLhere//restofthevalid

CreateProcess() 似乎不受 lpCurrentDirectory 的影响

我目前正在尝试使用CreateProcess()API启动一个进程:http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx我遇到的主要问题是子进程似乎是在父进程的工作目录下启动的,不管lpCurrentDirectory参数中指示的是什么.提供更多细节:lpCurrentDirectory似乎适用于简单的命令行程序,但对于更复杂的程序(想想GUI),它似乎没有被考虑在内,因为所有资源依赖项都是从调用目录进程中搜索的。我可以尝试来回切换调用进程的工作目录,但第二个问题是被调用进程不在目标

c++ - Windows MessageBox 忽略 WM_CLOSE

我们有一个遗留的CWindows应用程序,它在发生致命连接错误时通过MessageBox调用弹出一个模式窗口。我们的网络工程师可能同时运行其中的许多应用程序。有时,网络故障会导致这些应用程序处理的连接同时失败。在Windows7上,从任务栏中选择“关闭所有窗口”功能确实有效,因为模态对话框似乎没有处理WM_QUIT消息。我通常在Linux系统上工作,但我的MSDN研究表明,我可以捕获和处理此消息的唯一方法是创建我自己的对话框并自行处理消息。我担心的是我忽略了一个更简单的解决方案,任何人都可以提供替代方案吗? 最佳答案 模态对话的消息

PHP fatal error : Class 'COM' not found

将PHP升级到v.5.5.1后出现此错误:Fatalerror:Class'COM'notfoundinC:\inetpub\wwwroot\ndsystems\database_engine\mssql_engine.phponline184mssql_engine.php文件中的第184行:$this->COMConnection=newCOM('ADODB.Connection');//line184try{$this->COMConnection->Open($connectionString);$this->RetrieveServerVersion();}catch(com

c - 如何在 Windows 7 X64 SP1(x64 模式)下执行直接系统调用?

我试图模拟syscall指令在Windows7X64(SP1)上的工作方式,因此我使用MinGW64编写了一个64位GCC示例。据我所知,对于Windows,所有系统调用入口点都在ntdll.dll或ntdll32.dll中(在这种情况下,我们只关心ntdll.dll)。Status=NtCreateFile(&FileHandle,//returnedfilehandle(GENERIC_WRITE|SYNCHRONIZE),//desiredaccess&ObjectAttributes,//ptrtoobjectattributes&Iosb,//ptrtoI/Ostatusbl

windows - "error: can' t 在windows中运行scala时找不到主类scala.tools.nsc.MainGenericRunner

在下载scala2.10.2forwindows并运行scala后,我遇到了这样的错误:“错误:找不到或无法加载主类scala.tools.nsc.MainGenericRunner”意思是“错误:无法找到或加载主类scala.tools.nsc.MainGenericRunner”。于是查了下scala.bat的原因,发现了这样的函数::set_homeset_BIN_DIR=for%%iin(%~sf0)doset_BIN_DIR=%_BIN_DIR%%%~dpsiechoinset_home:%_BIN_DIR%set_SCALA_HOME=%_BIN_DIR%..goto:eo

c++ - 如何为 native Windows(而不是 X Windows)编译 gtk+ 应用程序?

我已经设法用cygwin编译了一个gtk+应用程序,但不幸的是,使用这种方法,应用程序需要运行x个窗Eloquent能启动。如何编译我的gtk+应用程序以在Windows上本地运行。我在网上看到过各种关于将-mno-cygwin标志用于gcc的帖子,但它似乎已被弃用?我也在stackoverflow上看到了这些帖子,但不清楚他们是在尝试为X编译还是为Windowsnative编译:Installinggtkandcompilingusinggccunderwindows?CompilingGTK+applicationsonwindows? 最佳答案

windows - GetLastError返回ERROR_OPERATION_ABORTED时,GetOverlappedResult的lpNumberOfBytesTransfered参数是否有效?

在我的项目中,我需要读取和写入串行端口(RS232)。我正在使用重叠IO并使用两个单独的线程进行读取和写入。当我发出一个没有立即完成的写操作时,我开始等待(WaitForMultipleObjects)两个事件;分配给重叠结构的hEvent成员的事件,以及一个停止事件。当我想停止线程时,我通过调用SetEvent()发出停止事件信号。这会导致等待函数返回。因为写入操作仍处于挂起状态,所以我通过调用CancelIO()取消了该操作。然后,我再次等待操作完成,现在使用GetOverlappedResult()并将bWait参数设置为True。当操作完成时,GetOverlappedResu

MATLAB 的自定义 C dll - loadlibrary 错误

我有一个为MATLAB编写的自定义dll,它在我们的开发机器上运行良好。但是,当我在没有开发工具的干净机器上尝试时,我收到消息:>>loadlibraryCMatLabCMatLab.h???Errorusing==>loadlibraryat279MicrosoftVisualC++2005or2008isrequiredtousethisfeature.经过一番研究,似乎很明显需要编译器在运行时解析头文件,所以我安装了标准的WindowsSDK,运行mex-setup来选择编译器,但我仍然得到同样的错误信息。这就是我为选择编译器所做的。>>mex-setupPleasechoose